package cn.cqnu.utils;


import cn.cqnu.global.SystemConstant;
import com.google.code.kaptcha.impl.DefaultKaptcha;
import com.google.code.kaptcha.util.Config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.Properties;

@Configuration
public class CaptchaUtils {
    @Bean
    public DefaultKaptcha producer() {
        //存储键值对的Java类。在这个类中，它用于存储生成验证码的相关配置属性
        Properties properties = new Properties();
//        以下为验证码生成属性，可以自己设置
        //验证码边框，这里设置为无
        properties.put("kaptcha.border", "no");
        //验证码中文字的颜色
        properties.put("kaptcha.textproducer.font.color", "black");
        //验证码中每一个文字的间距
        properties.put("kaptcha.textproducer.char.space", 4);
        //图片高度
        properties.put("kaptcha.image.height", "40");
        //图片宽度
        properties.put("kaptcha.image.width", "120");
        //图片验证码个数
        properties.put("kaptcha.textproducer.char.length", "4");
        //验证码生成时其中文字的字体大小
        properties.put("kaptcha.textproducer.font.size", "30");
        //Kaptcha库中的一个类，用于根据Properties对象的配置创建一个Config对象

        // 设置位数
        properties.put("kaptcha.textproducer.char.length", SystemConstant.CAPTCHA_LENGTH);

        Config config = new Config(properties);
        //Kaptcha库中的一个类，用于生成验证码图片
        DefaultKaptcha defaultKaptcha = new DefaultKaptcha();
        defaultKaptcha.setConfig(config);
        return defaultKaptcha;
    }
}
